package edu.hawaii.halealohacli;

/**
 * Simple Help class that prints out the available commands for the system.
 * 
 * @author John MacMillan
 * @author Mitchell Kupfer
 * @author Bryson Hori
 */
public class Help {
  /**
   * Prints out the available command for the system.
   * 
   * @return value Boolean value to check if method ran correctly.
   */
  public boolean run() {

    System.out.println("Here are the available commands for this system:\n");
    System.out.println("current-power [tower | lounge]");
    System.out.println("Returns the current power in kW for the associated tower or lounge.\n");
    System.out.println("daily-energy [tower | lounge] [date]");
    System.out.println("Returns the energy in kWh used by the tower or lounge for the specified"
        + " date (yyyy-mm-dd).\n");
    System.out.println("energy-since [tower | lounge] [date]");
    System.out.println("Returns the energy used since the date (yyyy-mm-dd) to now.\n");
    System.out.println("rank-towers [start] [end]");
    System.out.println("Returns a list in sorted order from least to most energy consumed "
        + "between the [start] and [end] date (yyyy-mm-dd)\n");
    System.out.println("set-baseline [tower | lounge] [date]");
    System.out.println("Obtains and saves the amount of energy used during each of the "
        + "24 hours of the given [date] for the given tower or lounge. "
        + "[date] is an optional argument in YYYY-MM-DD format and defaults to yesterday.\n");
    System.out.println("monitor-power [tower | lounge] [interval]");
    System.out.println("Prints out a timestamp and current power for [tower | lounge] every "
        + "[interval] seconds. If no [interval] is specificed, defaults to 10 seconds.\n");
    System.out.println("monitor-goal [tower | lounge] [goal] [interval]");
    System.out.println("Prints out a timestamp, the current power being consumed by the "
        + "[tower | lounge], and whether or not the lounge is meeting its power conservation "
        + "goal. [goal] is a required integer argument between 1 and 99 which defines the "
        + "percentage reduction from the baseline for this [tower | lounge] at this point "
        + "in time. [interval] is a required integer argument greater than 0.\n");
    System.out.println("quit");
    System.out.println("Terminates execution\n");
    System.out.println("Note: towers are:  Mokihana, Ilima, Lehua, Lokelani");
    System.out.println("Lounges are the tower names followed by a \"-\" followed by one "
        + "of A, B, C, D, E. For example, Mokihana-A.");
    return true;
  }
}
